如果怕手機關掉東西就不見了
來使用 AsyncStorage 將狀態存到手機也就是 local storage 裡吧!
一個簡單、非同步、持久化的 Key-Value 儲存系统,它對於 App 來說是全域性的。可用來代替 LocalStorage。
AsyncStorage 存儲的位置根據系統的不同而有所差異。
iOS 中的存儲類似於 NSUserDefault,通過 plist 文件存放在設備中。 Android 中會存儲在 RocksDB 或者 SQLite 中,取決於你使用哪個。
PS.Android 上有大小限制,最大只能存 6MB。如果需要的话,可以覆蓋這個限制,參考這個doc。
npm install @react-native-async-storage/async-storage
cd ios
pod install
import AsyncStorage from "@react-native-async-storage/async-storage";
const saveData = (value) => {
try {
AsyncStorage.setItem('Data_KEY', value);
} catch (e) {
console.log("error", e);
}
};
const [dataItem,setDataItem]=useState(null)
const getData = async () => {
try {
const item = await AsyncStorage.getItem('Data_KEY');
const itemParse = JSON.parse(item);
setDataItem(itemParse)
} catch (e) {
console.log("error", e);
}
};
這樣簡單的操作利用 key 的存取直接在需要的地方取用就完成了唷!!
當然也可以做簡單的封裝,可以參考這兩個唷!
封裝參考 A
封裝參考 B
最後提供 AsyncStorage API
Day 21 done! 請多多指教 ~